home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / GAS211S2.ZIP / src / gas-211 / include / ieee.h < prev    next >
C/C++ Source or Header  |  1993-05-30  |  4KB  |  133 lines

  1. /* IEEE Standard 695-1980 "Universal Format for Object Modules" header file
  2.    Contributed by Cygnus Support.  */
  3.  
  4. #define N_W_VARIABLES 8
  5. #define Module_Beginning 0xe0
  6.  
  7. typedef struct ieee_module {
  8.   char *processor;
  9.   char *module_name;
  10. } ieee_module_begin_type;
  11.  
  12. #define Address_Descriptor 0xec
  13. typedef struct ieee_address {
  14. bfd_vma number_of_bits_mau;
  15.  bfd_vma number_of_maus_in_address;
  16.  
  17.   unsigned char byte_order;
  18. #define IEEE_LITTLE 0xcc
  19. #define IEEE_BIG 0xcd
  20. } ieee_address_descriptor_type;
  21.  
  22. typedef union ieee_w_variable {
  23.   file_ptr offset[N_W_VARIABLES];
  24.   struct {
  25.     file_ptr extension_record;
  26.     file_ptr environmental_record;
  27.     file_ptr section_part;
  28.     file_ptr external_part;
  29.     file_ptr debug_information_part;
  30.     file_ptr data_part;
  31.     file_ptr trailer_part;
  32.     file_ptr me_record;
  33.   } r;
  34. } ieee_w_variable_type;
  35.  
  36.  
  37.  
  38.  
  39.  
  40. typedef enum ieee_record
  41.   ieee_number_start_enum = 0x00,
  42.   ieee_number_end_enum=0x7f,
  43.   ieee_number_repeat_start_enum = 0x80,
  44.   ieee_number_repeat_end_enum = 0x88,
  45.   ieee_number_repeat_4_enum = 0x84,
  46.   ieee_number_repeat_3_enum = 0x83,
  47.   ieee_number_repeat_2_enum = 0x82,
  48.   ieee_number_repeat_1_enum = 0x81,
  49.   ieee_module_beginning_enum = 0xe0,
  50.   ieee_module_end_enum = 0xe1,
  51.   ieee_extension_length_1_enum = 0xde,
  52.   ieee_extension_length_2_enum = 0xdf,
  53.   ieee_section_type_enum = 0xe6,
  54.   ieee_section_alignment_enum = 0xe7,
  55.   ieee_external_symbol_enum = 0xe8,
  56.   ieee_attribute_record_enum = 0xf1c9,
  57.   ieee_comma = 0x90,
  58.   ieee_external_reference_enum = 0xe9,
  59.   ieee_set_current_section_enum = 0xe5,
  60.   ieee_address_descriptor_enum = 0xec,
  61.   ieee_load_constant_bytes_enum = 0xed,
  62.   ieee_load_with_relocation_enum = 0xe4,
  63.  
  64.   ieee_variable_A_enum = 0xc1,                           
  65.   ieee_variable_B_enum = 0xc2,                           
  66.   ieee_variable_C_enum = 0xc3,                           
  67.   ieee_variable_D_enum = 0xc4,                           
  68.   ieee_variable_E_enum = 0xc5,                           
  69.   ieee_variable_F_enum = 0xc6,                           
  70.   ieee_variable_G_enum = 0xc7,                           
  71.   ieee_variable_H_enum = 0xc8,                           
  72.   ieee_variable_I_enum = 0xc9,                           
  73.   ieee_variable_J_enum = 0xca,                           
  74.   ieee_variable_K_enum = 0xcb,                           
  75.   ieee_variable_L_enum = 0xcc,                           
  76.   ieee_variable_M_enum = 0xcd,                           
  77.   ieee_variable_N_enum = 0xce,                           
  78.   ieee_variable_O_enum = 0xcf,                           
  79.   ieee_variable_P_enum = 0xd0,                           
  80.   ieee_variable_Q_enum = 0xd1,                           
  81.   ieee_variable_R_enum = 0xd2,                           
  82.   ieee_variable_S_enum = 0xd3,                           
  83.   ieee_variable_T_enum = 0xd4,                           
  84.   ieee_variable_U_enum = 0xd5,                           
  85.   ieee_variable_V_enum = 0xd6,                           
  86.   ieee_variable_W_enum = 0xd7,                           
  87.   ieee_variable_X_enum = 0xd8,                           
  88.   ieee_variable_Y_enum = 0xd9,                           
  89.   ieee_variable_Z_enum = 0xda,
  90.   ieee_function_plus_enum = 0xa5,
  91.   ieee_function_minus_enum = 0xa6,
  92.   ieee_function_signed_open_b_enum = 0xba,
  93.   ieee_function_signed_close_b_enum = 0xbb,
  94.  
  95.   ieee_function_unsigned_open_b_enum = 0xbc,
  96.   ieee_function_unsigned_close_b_enum = 0xbd,
  97.  
  98.   ieee_function_either_open_b_enum = 0xbe,
  99.   ieee_function_either_close_b_enum = 0xbf,
  100.   ieee_record_seperator_enum = 0xdb,
  101.  
  102.   ieee_e2_first_byte_enum = 0xe2,
  103.   ieee_section_size_enum = 0xe2d3,
  104.   ieee_physical_region_size_enum = 0xe2c1,
  105.   ieee_region_base_address_enum = 0xe2c2,
  106.   ieee_mau_size_enum = 0xe2c6,
  107.   ieee_m_value_enum = 0xe2cd,
  108.   ieee_section_base_address_enum = 0xe2cc,
  109.   ieee_section_offset_enum = 0xe2d2,
  110.   ieee_value_starting_address_enum = 0xe2c7,
  111.   ieee_assign_value_to_variable_enum = 0xe2d7,
  112.   ieee_set_current_pc_enum = 0xe2d0,
  113.   ieee_value_record_enum = 0xe2c9,
  114. ieee_nn_record = 0xf0,
  115.   ieee_weak_external_reference_enum= 0xf4,
  116.   ieee_repeat_data_enum = 0xf7
  117. } ieee_record_enum_type;
  118.          
  119.  
  120. typedef struct ieee_section {
  121.   unsigned int section_index;
  122.   unsigned int section_type;
  123.   char *section_name;
  124.   unsigned int parent_section_index;
  125.   unsigned int sibling_section_index;
  126.   unsigned int context_index;
  127. } ieee_section_type;
  128. #define IEEE_REFERENCE_BASE 11
  129. #define IEEE_PUBLIC_BASE 32
  130. #define IEEE_SECTION_NUMBER_BASE 1
  131.  
  132.